win32: Make flush/sync work like in X
authorAlexander Larsson <alexl@redhat.com>
Thu, 27 Oct 2011 14:56:40 +0000 (16:56 +0200)
committerAlexander Larsson <alexl@redhat.com>
Thu, 10 Nov 2011 16:41:06 +0000 (17:41 +0100)
gdk_flush() should gdk_display_sync() on all open displays.

Both for display_flush and display_sync it seems useful to call
GdiFlush, but we don't have anything extra to do for display_sync,
as there is no inherent roundtrip on win32.

This should close bug #84314

gdk/win32/gdkdisplay-win32.c
gdk/win32/gdkevents-win32.c
gdk/win32/gdkprivate-win32.h

index 74a8d666e786d55b6c3e6b3cf70a2b5357a71202..31cfcadb1bc3925bb9a5aaa9a1ec78d684c3e80f 100644 (file)
@@ -586,6 +586,15 @@ gdk_win32_display_flush (GdkDisplay * display)
   GdiFlush ();
 }
 
+
+static void
+gdk_win32_display_sync (GdkDisplay * display)
+{
+  g_return_if_fail (display == _gdk_display);
+
+  GdiFlush ();
+}
+
 static void
 gdk_win32_display_dispose (GObject *object)
 {
@@ -657,7 +666,7 @@ gdk_win32_display_class_init (GdkWin32DisplayClass *klass)
   display_class->get_screen = gdk_win32_display_get_screen;
   display_class->get_default_screen = gdk_win32_display_get_default_screen;
   display_class->beep = gdk_win32_display_beep;
-  display_class->sync = _gdk_win32_display_sync;
+  display_class->sync = gdk_win32_display_sync;
   display_class->flush = gdk_win32_display_flush;
   display_class->has_pending = _gdk_win32_display_has_pending;
   display_class->queue_events = _gdk_win32_display_queue_events;
index bfb56092a907912e0023b7fffe54338b302e6e89..49741666affa6fdd5bdf503e0f81bfb17c623762 100644 (file)
@@ -3415,16 +3415,3 @@ is_modally_blocked (GdkWindow *window)
   GdkWindow *modal_current = _gdk_modal_current ();
   return modal_current != NULL ? gdk_window_get_toplevel (window) != modal_current : FALSE;
 }
-
-void
-_gdk_win32_display_sync (GdkDisplay * display)
-{
-  MSG msg;
-
-  g_return_if_fail (display == _gdk_display);
-
-  /* Process all messages currently available */
-  while (PeekMessageW (&msg, NULL, 0, 0, PM_REMOVE))
-    DispatchMessageW (&msg);
-}
-
index cdba1eb43f20f99c5dfe9b4f3b2e365f0567cd47..d7dae478584e3da5a306d0fa7fc2834ff37330f8 100644 (file)
@@ -388,7 +388,6 @@ gboolean _gdk_win32_display_supports_cursor_color (GdkDisplay    *display);
 
 GList *_gdk_win32_display_list_devices (GdkDisplay *dpy);
 
-void _gdk_win32_display_sync (GdkDisplay * display);
 gboolean _gdk_win32_display_has_pending (GdkDisplay *display);
 void _gdk_win32_display_queue_events (GdkDisplay *display);